/*
 * @Description: 管理员相关接口
 * @Author: HuiSir<https://gitee.com/huisir001>
 * @Date: 2025-06-11 22:57:17
 * @LastEditTime: 2025-09-03 11:15:41
 */
import Req, { FormDataSet } from "@/utils/Request";
const Prefix = "/admin";

/**
 * 登出
 */
export const doLogout: ApiRequest = () => Req.get(`${Prefix}/exit`);

/**
 * 当前管理员信息
 */
export const currentAdmin: ApiRequest = () => Req.get(`${Prefix}/current`);

/**
 * 获取管理员列表的 API 请求函数
 *
 * @param data 请求数据，类型为 SearchParamsByPage
 * @returns 返回 ApiRequest 对象，包含发送请求的函数
 */
export const getAdminList: ApiRequest<SearchParamsByPage> = (data) =>
  Req.post(`${Prefix}/query`, data, FormDataSet);

/**
 * 添加管理员接口
 *
 * @param data 需要添加的管理员信息
 * @returns 返回添加管理员的结果
 */
export const addAdmin: ApiRequest<AdminInfo> = (data) =>
  Req.post(`${Prefix}/add`, data);

/**
 * 更新管理员信息
 */
export const updateAdmin: ApiRequest<AdminInfo> = (adminInfo) =>
  Req.post(`${Prefix}/update`, adminInfo);

/**
 * 删除管理员接口
 *
 * @param id 管理员的ID
 * @returns ApiRequest<string> 删除管理员的ApiRequest对象
 */
export const delAdmin: ApiRequest<string> = (id: string) =>
  Req.get(`${Prefix}/delete`, { params: { id } });

/**
 * 更新用户密码的 API 请求函数。
 *
 * @param data 包含旧密码和新密码的对象。
 * @returns 发起 POST 请求，返回更新密码的结果。
 */
export const updatePassword: ApiRequest<{
  oldPassword: string;
  password: string;
}> = (data) => Req.post(`${Prefix}/updatePassword`, data);

/**
 * 重置用户密码的请求函数
 *
 * @param id 用户ID
 * @returns 返回一个ApiRequest对象，用于发起GET请求
 */
export const resetPassword: ApiRequest<string> = (id) =>
  Req.get(`${Prefix}/initPassword`, { params: { id } });
